#ifndef MYDRAGGER_H
#define MYDRAGGER_H

#include <osgManipulator/Dragger>
#include <osgManipulator/Translate1DDragger>
#include <osgManipulator/Translate2DDragger>
#include <osgManipulator/TrackballDragger>

class MoveDragger : public osgManipulator::CompositeDragger
{
	public:
		MoveDragger(void);

		void setupDefaultGeometry();

	protected:
		~MoveDragger(void);

		virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa);
		virtual bool handle(const osgManipulator::PointerInfo& pi, const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa);

		osg::Geode* createAsix(std::string tex ,osg::Vec4 color);
		osg::Group* createPlane(osg::Vec4 color1, osg::Vec4 color2);
	protected:

		osg::ref_ptr< osgManipulator::Translate1DDragger >  _xDragger;
		osg::ref_ptr< osgManipulator::Translate1DDragger >  _yDragger;
		osg::ref_ptr< osgManipulator::Translate1DDragger >  _zDragger;

		osg::ref_ptr< osgManipulator::Translate2DDragger > _yozDragger;
		osg::ref_ptr< osgManipulator::Translate2DDragger > _xoyDragger;
		osg::ref_ptr< osgManipulator::Translate2DDragger > _xozDragger;

		osgManipulator::PointerInfo::IntersectionList::iterator _itr;
};

#endif

